
package situ.autoweter.dao;
import java.util.*;


import com.sun.javafx.collections.MappingChange;
import situ.autoweter.common.Assist;
import situ.autoweter.entity.RdRead;
import org.apache.ibatis.annotations.*;
import situ.autoweter.entity.USUser1;

/**
 * RdRead的Dao接口
 * 
 * @author 
 *
 */
@Mapper
public interface RdReadDao {

	/*
罗艳写的连接查询
	 */



/**
 * id查
 */
	Map selectqueryupdate(Integer id);


	public List<Map> selectRdReadForMap(RdRead value);



	/**
	 * 获得RdRead数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getRdReadRowCount(Assist assist);

	/*
	 *多条件查询-张俊作
	 *
	 */

   	 List<RdRead> selectByif(RdRead rdRead);
	
	/**
	 * 获得RdRead数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */

	List<RdRead> selectRdRead(Assist assist);
	/**
	 * 通过RdRead的id获得RdRead对象
	 * 
	 * @param id
	 * @return
	 */
	RdRead selectRdReadById(Object id);
	
	/**
	 * 获得一个RdRead对象,以参数RdRead对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 * 
	 * @param obj
	 * @return
	 */
	RdRead selectRdReadObjSingle(RdRead obj);
	
	/**
	 * 获得一个RdRead对象,以参数RdRead对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<RdRead> selectRdReadByObj(RdRead obj);

	/**
	 * 插入RdRead到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertRdRead(RdRead value);
	
	/**
	 * 插入RdRead中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNotNullRdRead(RdRead value);
	
	/**
	 * 批量插入RdRead到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertRdReadByBatch(List<RdRead> value);
	/**
	 * 通过RdRead的id删除RdRead
	 * 
	 * @param id
	 * @return
	 */
	int deleteRdReadById(Object id);
	
	/**
	 * 通过辅助工具Assist的条件删除RdRead
	 * 
	 * @param assist
	 * @return
	 */
	int deleteRdReadByAssist(Assist assist);
	
	/**
	 * 通过RdRead的id更新RdRead中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateRdReadById(RdRead enti);
	
	/**
	 * 通过RdRead的id更新RdRead中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNotNullRdReadById(RdRead enti);
	/**
	 * 通过辅助工具Assist的条件更新RdRead中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateRdRead(@Param("enti") RdRead value, @Param("assist") Assist assist);
	
	/**
	 * 通过辅助工具Assist的条件更新RdRead中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNotNullRdRead(@Param("enti") RdRead value, @Param("assist") Assist assist);


	@Select("update RD_Read set ReadEmpID=#{ReadEmpID}  where ID=#{ID}")
    void updateNotNullByIdHHl(@Param("ReadEmpID")Integer readEmpID,@Param("ID") Integer id);


 	/**
	 * 根据id查上月低表码数
	 */
	@Select("select * from rd_read r\n" +
			"inner join Us_user u on r.UserNo=u.UserNo\n" +
			"inner join Us_Meter m on r.MeterNo=M.MeterNo\n" +
			"where r.ID=#{ID}")
	Map queryChangeValueById(@Param("ID") Integer id);

	/*

	 */
	List<Map> queryReportReadingFY(RdRead rdRead);


	//刘旻的东西
	@Select("select * from SY_Area a  inner join RD_Volume v  on v.AreaID=a.ID inner join RD_Read r \n" +
			"on r.VolumeId=v.ID ")
	List<Map> Show();


	@Select("select * from RD_Read r inner join US_User u\n" +
			"\ton u.UserNo=r.UserNo\n"+
			"where r.VolumeId=#{value} and r.Audit='false'")
	List<Map> Find(int volumeId);

	@Select("select * from RD_Read r inner join US_User u\n" +
			"\ton u.UserNo=r.UserNo where r.Audit=0")
	List<Map> ShowUs(RdRead rdRead);

	@Select("select * from RD_Read r inner join US_User u\n" +
			"\t\ton u.UserNo=r.UserNo\n" +
			"\t\t\twhere u.UserName like '%${UserName}%' and u.UserNo\n" +
			" like '%${UserNo}%' and u.Address like '%${Address}%' and u.Phone like '%${Phone}%'")
	List<Map> MhFind(USUser1 user);

	@Update("update RD_Read set Audit='true' where ID=#{value}")
	int Update(int ID);
 }